package com.wangxu.blog.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 返回的数据对象
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result {

    //返回响应的成功和失败的状态
    private boolean success;
    //返回响应的状态码
    private int code;
    //返回响应消息
    private String msg;
    //返回数据
    private Object data;

    /**
     * 响应成功
     * @param data 响应的数据
     * @return 返回响应成功的数据对象
     */
    public static Result success(Object data){
        return new Result(true,200,"success",data);
    }

    /**
     * 响应失败
     * @param code 响应的状态码
     * @return 返回响应失败的状态和消息
     */
    public static Result success(int code){
        return new Result(false,code,"error",null);
    }

    /**
     * 系统异常
     * @param code 异常状态
     * @param msg 异常信息
     * @return 返回异常状态和信息
     */
    public static Result fail(int code, String msg) {
        return new Result(false,code,msg,null);
    }
}
